package array

import "soluty.cc/go/godash/internal"

// Difference 创建一个具有唯一array值的数组，每个值不包含在其他给定的数组中。
// （注：即创建一个新数组，这个数组中的值，为第一个数字（array 参数）排除了给定数组中的值。）
// 结果值的顺序是由第一个数组中的顺序确定。
func Difference(array []T, values ...[]T) []T {
	var ret []T
	for _, t := range array {
		var contain bool
		for _, value := range values {
			if internal.Contains(value, t) {
				contain = true
				break
			}
		}
		if !contain {
			ret = append(ret, t)
		}
	}
	return ret
}
